"""
删除文档
"""
import os
import sys

path = os.path.dirname(__file__)
sys.path.append(os.path.join(path, '..'))

from conf.mongo_conf import BASIC_DATA_DB
from conf.config import COMPANY_STAFFS_MIN_LIST


class DropDocument(object):
    company_staffs_min = BASIC_DATA_DB[COMPANY_STAFFS_MIN_LIST]

    def delete_one(self):
        # 查询年纪大等于55岁员工
        age_gte_50_staffs = self.company_staffs_min.find({'age': {'$gte': 55}})
        print(f"""age_gte_50_staffs, 数量：{len(list(age_gte_50_staffs))}""")
        # 删除满足条件的一条数据
        self.company_staffs_min.delete_one({'age': {'$gte': 55}})
        print(f"""age_gte_50_staffs, 数量：{len(list(age_gte_50_staffs))}""")

    def delete_many(self):
        # 查询年纪大等于55岁员工
        age_gte_50_staffs = self.company_staffs_min.find({'age': {'$gte': 55}})
        print(f"""age_gte_50_staffs, 数量：{len(list(age_gte_50_staffs))}""")
        # 删除满足条件的多条数据
        self.company_staffs_min.delete_many({'age': {'$gte': 55}})
        print(f"""age_gte_50_staffs, 数量：{len(list(age_gte_50_staffs))}""")

    def drop_document(self):
        staffs_count = self.company_staffs_min.count_documents({})
        print(f'{COMPANY_STAFFS_MIN_LIST}, 文档数据数量：{staffs_count}')
        # 方式一
        self.company_staffs_min.drop()
        # 方式二
        self.company_staffs_min.delete_many({})
        staffs_count = self.company_staffs_min.count_documents({})
        print(f'{COMPANY_STAFFS_MIN_LIST}, 文档数据数量：{staffs_count}')

    def run(self):
        self.delete_one()   # 移除满足条件的一条数据
        self.delete_many()  # 移除满足条件的多条数据
        self.drop_document()    # 删除整个文档数据


if __name__ == '__main__':
    drop_document = DropDocument()
    drop_document.run()
